home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / CRS / crs19.d81 / typset.arc / FIGURE DRAW (.txt) < prev    next >
Commodore BASIC  |  2009-10-10  |  2KB  |  91 lines

  1. 1 REM FIGURE DRAW FOR CAD
  2. 2 PRINT"[147][158]":POKE53280,00:POKE53281,00
  3. 3 CLR:DIMA%(960,3):EN=960
  4. 4 X$="[216]:"
  5. 5 Y$="[217]:"
  6. 6 PRINTCHR$(14)"[147][210]EFERENCE (L,R,T,B)":R=1
  7. 7 GETA$:IFA$=""THEN7
  8. 8 IFA$="R"THENR=2
  9. 9 IFA$="T"THENR=3
  10. 10 IFA$="B"THENR=4
  11. 11 ONRGOSUB37,38,39,40
  12. 12 PRINT"[147]"
  13. 13 PRINT"";:PRINTTAB(18);"[216]:"
  14. 14 PRINT"";:PRINTTAB(28);"[217]:"
  15. 15 POKESP,91:POKECP,08
  16. 16 PRINTX$;X;"[157]   ";Y$;Y;"[157]   "
  17. 17 GETA$:IFA$<>""THEN24
  18. 18 POKESP+X+40*Y,PEEK(SP+X+40*Y)AND127
  19. 19 JV=PEEK(56320):FR=JVAND16:IFFR<>0THENFL=0:GOTO21
  20. 20 GOSUB29
  21. 21 JV=15-(JVAND15):IFJV=15THEN17
  22. 22 ONRGOSUB41,46,51,56
  23. 23 POKESP+X+40*Y,PEEK(SP+X+40*Y)OR128:POKECP+X+40*Y,08:GOTO16
  24. 24 IFA$=CHR$(20)THENGOSUB32
  25. 25 IFA$=CHR$(136)THENGOSUB61
  26. 26 IFA$=CHR$(140)THENGOSUB78:RUN
  27. 27 IFA$=CHR$(147)THEN3
  28. 28 POKESP+X+40*Y,PEEK(SP+X+40*Y)OR128:GOTO17
  29. 29 IFFL=1THEN31
  30. 30 FL=1:CU=102:IF(PEEK(SP+X+40*Y)AND127)=102THENCU=32-128
  31. 31 POKESP+X+40*Y,128+CU:POKECP+X+40*Y,08:RETURN
  32. 32 CL=0
  33. 33 CL=CL+1:IFCL=256THENRETURN
  34. 34 IFA%(CL,1)<>XTHEN33
  35. 35 IFA%(CL,2)<>YTHEN33
  36. 36 POKESP+A%(CL,1)+A%(CL,2)*40,32:A%(CL,3)=0:RETURN
  37. 37 SP=1504:CP=55776:RETURN
  38. 38 SP=1543:CP=55815:RETURN
  39. 39 SP=1083:CP=55355:RETURN
  40. 40 SP=2003:CP=56275:RETURN
  41. 41 IF(JVAND1)THENY=Y-1:IFY<-11THENY=-11
  42. 42 IF(JVAND2)THENY=Y+1:IFY>12THENY=12
  43. 43 IF(JVAND4)THENX=X-1:IFX<0THENX=0
  44. 44 IF(JVAND8)THENX=X+1:IFX>39THENX=39
  45. 45 RETURN
  46. 46 IF(JVAND1)THENY=Y-1:IFY<-11THENY=-11
  47. 47 IF(JVAND2)THENY=Y+1:IFY>12THENY=12
  48. 48 IF(JVAND4)THENX=X-1:IFX<-40THENX=-40
  49. 49 IF(JVAND8)THENX=X+1:IFX>0THENX=0
  50. 50 RETURN
  51. 51 IF(JVAND1)THENY=Y-1:IFY<0THENY=0
  52. 52 IF(JVAND2)THENY=Y+1:IFY>23THENY=23
  53. 53 IF(JVAND4)THENX=X-1:IFX<-19THENX=-19
  54. 54 IF(JVAND8)THENX=X+1:IFX>20THENX=20
  55. 55 RETURN
  56. 56 IF(JVAND1)THENY=Y-1:IFY<-23THENY=-23
  57. 57 IF(JVAND2)THENY=Y+1:IFY>0THENY=0
  58. 58 IF(JVAND4)THENX=X-1:IFX<-19THENX=-19
  59. 59 IF(JVAND8)THENX=X+1:IFX>20THENX=20
  60. 60 RETURN
  61. 61 PRINT"[147][204][207][193][196] FILENAME:";
  62. 62 GETF$:IFF$=""THEN62
  63. 63 IFF$=CHR$(13)THENRETURN
  64. 64 OPEN2,8,2,F$+".FIG,P,R":P1=0
  65. 65 FORT=1TO2
  66. 66 GET#2,A$(T)
  67. 67 NEXT
  68. 68 P1=P1+1:FORT=1TO2
  69. 69 GET#2,A$:IFA$=CHR$(255)THEN74
  70. 70 REM IFA$=""THEN67
  71. 71 A=ASC(A$+CHR$(0))
  72. 72 IFA>127THENA=-(AAND127)
  73. 73 A%(P1,T)=A:NEXT:A%(P1,3)=1:GOTO68
  74. 74 CLOSE2
  75. 75 PRINT"[147]":FORT=1TOP1-1:IFA%(T,3)=0THENNEXT:GOTO77
  76. 76 X1=A%(T,1):Y1=A%(T,2):POKESP+X1+40*Y1,128+102:POKECP+X1+40*Y1,08:NEXT
  77. 77 P=P1-1:RETURN
  78. 78 PRINT"[211][193][214][197] FILENAME:";
  79. 79 GETF$:IFF$=""THEN79
  80. 80 IFF$=CHR$(13)THEN90
  81. 81 OPEN2,8,2,"@0:"+F$+".FIG,P,W":P1=0
  82. 82 PRINT#2,CHR$(0);CHR$(158);
  83. 83 FORI=1064TO2047
  84. 84 IF(PEEK(I)AND127)<>102THENPOKEI,32:GOTO89
  85. 85 POKEI,160
  86. 86 B%(2)=INT((I-SP)/40):B%(1)=INT(((I-SP)/40-B%(2))*40+.5)
  87. 87 FORJ=1TO2:IFB%(J)<0THENB%(J)=ABS(B%(J))OR128
  88. 88 NEXTJ:PRINT#2,CHR$(B%(1));CHR$(B%(2));
  89. 89 NEXTI
  90. 90 PRINT#2,CHR$(255);CHR$(255);:CLOSE2:PRINT"[147]":RETURN
  91.